//package com.ants.platform.core.db.hibernate;
//import com.ants.platform.core.bean.Page;
//import org.hibernate.Query;
//import org.hibernate.Session;
//import org.hibernate.SessionFactory;
//import org.springframework.orm.hibernate4.HibernateTemplate;
//import org.springframework.stereotype.Repository;
//
//import javax.annotation.Resource;
//import java.util.List;
//
///**
// * 注入hibernate seesionFactory
// * 需要导入hibernate相应的jar才可以使用
// * Created by liushun on 2016/9/8.
// */
////@Repository
//public class HibernateDAOImpl<T> extends HibernateTemplate implements HibernateDAO {
//
//    /**
//     * 基本数据库操作封装类
//     */
//
//    @Resource(name = "sessionFactory")
//    public void setMySessionFactory(SessionFactory sessionFactory) {
//        this.setSessionFactory(sessionFactory);
//    }
//
//    public Page queryByPage(String hql, Page page, Object... objs) {
//        Integer pageSize = page.getPageSize();
//        Integer pageIndex = page.getPageCurrent() < 1 ? 0 : page.getPageCurrent() - 1;
//        Session session = this.getSessionFactory().openSession();
//
//        Query list_query = session.createQuery(hql);
//        Query count_query = session.createQuery("select count(*) " + hql);
//        if (objs != null) {
//            for (int i = 0; i < objs.length; i++) {
//                list_query.setParameter(i, objs[i]);
//                count_query.setParameter(i, objs[i]);
//            }
//        }
//        list_query.setFirstResult(pageIndex * pageSize); //设置开始记录数
//        list_query.setMaxResults(pageSize);    //设置每页大小
//        List list = list_query.list();
//        page.setData(list);
//        //查询总记录数
//        long count = Long.parseLong((count_query.uniqueResult()).toString());
//        page.setTotalCount(count);
//        if (count % pageSize == 0)
//            page.setTotalPage((int) (count / pageSize));
//        else
//            page.setTotalPage((int) ((count / pageSize) + 1));
//        return page;
//    }
//
//}